package com.mcxx.modules.minimumliving.service;

import com.mcxx.common.exception.BizException;
import com.mcxx.modules.miniSalvation.family.dto.ApplyRtnDTO;
import com.mcxx.modules.miniSalvation.family.dto.ExtremePovertyApplyDTO;
import com.mcxx.modules.miniSalvation.order.dto.OrderApproveDTO;
import com.mcxx.modules.miniSalvation.order.param.RecheckOrderQueryParam;
import com.mcxx.modules.miniSalvation.order.param.RecheckParam;
import com.mcxx.result.BaseResult;
import com.yinhai.ta404.component.audit.vo.ExcelInfo;
import com.yinhai.ta404.core.security.vo.UserAccountVo;

import java.util.List;
import java.util.Map;


public interface ExRecheckService {

    String addRecheckOrder(String orderId, UserAccountVo accountVo);


    void approveRecheckOrder(OrderApproveDTO orderApproveDTO, UserAccountVo userAccountVo);


    BaseResult<Boolean> addRecheckOrderNo(String[] orderId,String batchNo, UserAccountVo accountVo);


    BaseResult<Boolean> deleteRechekOrderNo(String [] checkId,String [] orderId,String batchNo,String state,String type );


    int   confirmInform(String [] bathNo,String status);

    int   cancalInform(String status, String[] bathNo);


    int confirmCheck(String status, String[] batchNo);


    void cancelSalvationRequestTown(String orderId,String revokeReason, UserAccountVo userAccountVo);

    Map<String, List<String>> cancelSalvationRequestTowns(List<String> orderIdList, UserAccountVo userAccountVo);


    ApplyRtnDTO tempSaveRecheckInHouse(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo) throws BizException;


    ApplyRtnDTO completeRecheckInHouse(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo);

    ExcelInfo exportExcelRecheckResultList(RecheckParam param, UserAccountVo accountVo);

    void approveHouseholdCancel(OrderApproveDTO orderApproveDTO, UserAccountVo accountVo);

    ExcelInfo exportExcelRecheckToDoList(RecheckOrderQueryParam param, UserAccountVo accountVo);

    ExcelInfo exportCountRecheckTodoList(RecheckOrderQueryParam param, UserAccountVo accountVo);

    void backSalvationFinished(String orderId, String revokeReason, UserAccountVo userAccountVo);
}
